package com.jhgsys.internal.system.entity;

import com.jhgsys.internal.common.converter.TimeConverter;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wuwenze.poi.annotation.Excel;
import com.wuwenze.poi.annotation.ExcelField;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
 * @author MrBird
 */
@Data
@TableName("BASIC_ROLE")
@Excel("角色信息表")
public class Role implements Serializable {

    private static final long serialVersionUID = -4493960686192269860L;
    /**
     * 角色ID
     */
    @TableId(value = "ROLE_ID", type = IdType.ASSIGN_UUID)
    private String roleId;

    /**
     * 角色名称
     */
    @TableField("ROLE_NAME")
    @ExcelField(value = "角色名称")
    @NotBlank(message = "{required}")
    @Size(max = 10, message = "{noMoreThan}")
    private String roleName;

    /**
     * 租户 ID
     */
    @TableField(value = "TENANT_ID")
    private String tenantId;

    /**
     * 机构ID， 为0是不区分机构
     */
    @TableField("DEPT_ID")
    private String deptId;

    /**
     * 角色描述
     */
    @TableField("REMARK")
    @ExcelField(value = "角色描述")
    @Size(max = 50, message = "{noMoreThan}")
    private String remark;
    /**
     * 创建人id
     */
    @TableField("CREATED_BY")
    @ExcelField("创建人id")
    private String createdBy;
    /**
     * 创建时间
     */
    @TableField("CREATED_TIME")
    @ExcelField(value = "创建时间", writeConverter = TimeConverter.class)
    private Date createTime;
    /**
     * 更新人id
     */
    @TableField("UPDATED_BY")
    @ExcelField("更新人id")
    private String updatedBy;
    /**
     * 修改时间
     */
    @TableField("UPDATED_TIME")
    @ExcelField(value = "修改时间", writeConverter = TimeConverter.class)
    private Date updatedTime;
    /**
     * 删除人id
     */
    @TableField("DELETED_BY")
    @ExcelField("删除人id")
    private String deletedBy;
    /**
     * 删除时间
     */
    @TableField("DELETED_TIME")
    @ExcelField(value = "删除时间", writeConverter = TimeConverter.class)
    private Date deletedTime;
    /**
     * 删除标记
     */
    @TableField("DELETED_FLG")
    @ExcelField("删除标记")
    private String deletedFlg;

    /**
     * 状态 0：禁用 1：启用
     */
    @TableField("STATUS")
    @ExcelField("状态")
    private String status;

    /**
     * 角色类型
     */
    @TableField("ROLE_TYPE")
    @ExcelField("角色类型")
    private String roleType;

//    /**
//     * 角色对应的菜单（按钮） id
//     */
//    private transient String menuIds;
//
//    /**
//     * 查询条件用
//     */
//    private transient String roleIds;
//
//    /**
//     * 角色对应的公司名称
//     */
//    private transient String tenantName;

}
